package cn.nn200433.job.annotation;


import cn.nn200433.job.enums.Trigger;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * xxl-job 增强版
 *
 * @author nn200433
 * @date 2024-03-01 02:41:40
 */
@Inherited
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface XxlJobPlus {

    /**
     * 任务方法名称
     *
     * @return {@link String }
     * @author nn200433
     */
    String value();

    /**
     * cron 表达式
     *
     * @return {@link String }
     * @author nn200433
     */
    String cron();

    /**
     * 初始化处理程序，在 JobThread 初始化时调用
     *
     * @return {@link String }
     * @author nn200433
     */
    String init() default "";

    /**
     * 销毁处理程序，当 JobThread 销毁时调用
     *
     * @return {@link String }
     * @author nn200433
     */
    String destroy() default "";

    /**
     * 任务描述
     *
     * @return {@link String }
     * @author nn200433
     */
    String desc() default "默认调度任务";

    /**
     * 作者
     *
     * @return {@link String }
     * @author nn200433
     */
    String author() default "系统管理员";

    /**
     * 触发状态
     *
     * @return int
     * @author nn200433
     */
    Trigger status() default Trigger.START;

}
